package es.uned.ii.si3.web.forms;
import java.sql.Connection;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import es.uned.ii.si3.business.GestionUsuarios;
import es.uned.ii.si3.dao.ConnectionFactory;
import es.uned.ii.si3.model.Usuario;

public class RegistroUsuariosForm extends ActionForm{

	private Long idAlumno;
	private String dni;
	private String nombre;
	protected String apellidos;
	
	protected Long idUsuario;
	protected Long idRol;
	
	protected List listaRol;
	protected List listaCentro;
	protected List listaDepartamento;
	
	protected String mail;
	protected String login;
	protected String password;
	protected String confirmPassword;
	protected Boolean notificaciones;
	
	protected Long idCentro;
	protected String expediente;
	
	protected Long idDepartamento;
	
	protected String operacion;
	
	protected Long idRolUpdate;
	
	public RegistroUsuariosForm() {
        super();
    }
	
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
		
        ActionErrors errors = new ActionErrors();
        GestionUsuarios gestionUsuarios = new GestionUsuarios();
        Usuario usuario = null;
		usuario = gestionUsuarios.getUsuarioByDNI(getDni());
		if (usuario != null && getIdAlumno()!=usuario.getIdUsuario()) {
			errors.add("dni", new ActionMessage("DNI repetido en la base de datos<br/>",false));
		}

		usuario = gestionUsuarios.getUsuarioByLogin(getLogin());
		if (usuario != null && getIdAlumno()!=usuario.getIdUsuario()) {
			errors.add("login", new ActionMessage("Login repetido en la base de datos<br/>",false));
		}
		
        return errors;
        
    }
	
	
	/**
	 * @return the idAlumno
	 */
	public Long getIdAlumno() {
		return idAlumno;
	}
	/**
	 * @param idAlumno the idAlumno to set
	 */
	public void setIdAlumno(Long idAlumno) {
		this.idAlumno = idAlumno;
	}
	
	/**
	 * @return the dni
	 */
	public String getDni() {
		return dni;
	}
	/**
	 * @param dni the dni to set
	 */
	public void setDni(String dni) {
		this.dni = dni;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the apellidos
	 */
	public String getApellidos() {
		return apellidos;
	}
	/**
	 * @param apellidos the apellidos to set
	 */
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}
	/**
	 * @return the idUsuario
	 */
	public Long getIdUsuario() {
		return idUsuario;
	}
	/**
	 * @param idUsuario the idUsuario to set
	 */
	public void setIdUsuario(Long idUsuario) {
		this.idUsuario = idUsuario;
	}
	/**
	 * @return the listaRol
	 */
	public List getListaRol() {
		return listaRol;
	}
	/**
	 * @return the listaCentro
	 */
	public List getListaCentro() {
		return listaCentro;
	}
	/**
	 * @param listaRol the listaRol to set
	 */
	public void setListaRol(List listaRol) {
		this.listaRol = listaRol;
	}
	/**
	 * @param listaCentro the listaCentro to set
	 */
	public void setListaCentro(List listaCentro) {
		this.listaCentro = listaCentro;
	}
	/**
	 * @return the listaDepartamento
	 */
	public List getListaDepartamento() {
		return listaDepartamento;
	}
	/**
	 * @param listaDepartamento the listaDepartamento to set
	 */
	public void setListaDepartamento(List listaDepartamento) {
		this.listaDepartamento = listaDepartamento;
	}
	/**
	 * @return the idRol
	 */
	public Long getIdRol() {
		return idRol;
	}
	/**
	 * @param idRol the idRol to set
	 */
	public void setIdRol(Long idRol) {
		this.idRol = idRol;
	}
	/**
	 * @return the mail
	 */
	public String getMail() {
		return mail;
	}
	/**
	 * @param mail the mail to set
	 */
	public void setMail(String mail) {
		this.mail = mail;
	}
	/**
	 * @return the login
	 */
	public String getLogin() {
		return login;
	}
	/**
	 * @param login the login to set
	 */
	public void setLogin(String login) {
		this.login = login;
	}
	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}
	/**
	 * @param password the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}
	
	/**
	 * @return the password
	 */
	public String getConfirmPassword() {
		return confirmPassword;
	}
	/**
	 * @param password the password to set
	 */
	public void setConfirmPassword(String confirmPassword) {
		this.confirmPassword = confirmPassword;
	}
	/**
	 * @return the notificaciones
	 */
	public Boolean getNotificaciones() {
		return notificaciones;
	}
	/**
	 * @param notificaciones the notificaciones to set
	 */
	public void setNotificaciones(Boolean notificaciones) {
		this.notificaciones = notificaciones;
	}
	/**
	 * @return the idCentro
	 */
	public Long getIdCentro() {
		return idCentro;
	}
	/**
	 * @return the idRolUpdate
	 */
	public Long getIdRolUpdate() {
		return idRolUpdate;
	}
	/**
	 * @param idRolUpdate the idRolUpdate to set
	 */
	public void setIdRolUpdate(Long idRolUpdate) {
		this.idRolUpdate = idRolUpdate;
	}
	/**
	 * @return the operacion
	 */
	public String getOperacion() {
		return operacion;
	}
	/**
	 * @param operacion the operacion to set
	 */
	public void setOperacion(String operacion) {
		this.operacion = operacion;
	}
	/**
	 * @param idCentro the idCentro to set
	 */
	public void setIdCentro(Long idCentro) {
		this.idCentro = idCentro;
	}
	/**
	 * @return the expediente
	 */
	public String getExpediente() {
		return expediente;
	}
	
	/**
	 * @param expediente the expediente to set
	 */
	public void setExpediente(String expediente) {
		this.expediente = expediente;
	}
	
	/**
	 * @return the idDepartamento
	 */
	public Long getIdDepartamento() {
		return idDepartamento;
	}
	/**
	 * @param idDepartamento the idDepartamento to set
	 */
	public void setIdDepartamento(Long idDepartamento) {
		this.idDepartamento = idDepartamento;
	}
	
	}
